/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright 2008 The KiWi Project. All rights reserved.
 * http://www.kiwi-project.eu
 *
 * The contents of this file are subject to the terms of either the GNU
 * General Public License Version 2 only ("GPL") or the Common
 * Development and Distribution License("CDDL") (collectively, the
 * "License"). You may not use this file except in compliance with the
 * License. You can obtain a copy of the License at
 * http://www.netbeans.org/cddl-gplv2.html
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
 * specific language governing permissions and limitations under the
 * License.  When distributing the software, include this License Header
 * Notice in each file and include the License file at
 * nbbuild/licenses/CDDL-GPL-2-CP.  KiWi designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Sun in the GPL Version 2 section of the License file that
 * accompanied this code. If applicable, add the following below the
 * License Header, with the fields enclosed by brackets [] replaced by
 * your own identifying information:
 * "Portions Copyrighted [year] [name of copyright owner]"
 *
 * If you wish your version of this file to be governed by only the CDDL
 * or only the GPL Version 2, indicate your decision by adding
 * "[Contributor] elects to include this software in this distribution
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
 * single choice of license, a recipient has the option to distribute
 * your version of this file under either the CDDL, the GPL Version 2 or
 * to extend the choice of license to its licensees as provided above.
 * However, if you add GPL Version 2 code and therefore, elected the GPL
 * Version 2 license, then the option applies only if the new code is
 * made subject to such option by the copyright holder.
 *
 * Contributor(s):
 *
 *
 */
package kiwi.core.action.search;

import java.io.Serializable;

import javax.inject.Scope;

	/**
	 * Provides the backing functionality for the image browser panel. 
	 * This panel is made to 1. pick an image from the existing ones or 
	 * 2. upload a new image to pick.
	 * @author SzabyG
	 *
	 * browser test: javascript:showKiwiDialogbox("wiki.imageBrowserPanel")
	 */

@Name("imageBrowserAction")
@Scope(ScopeType.CONVERSATION)
public class ImageBrowserAction implements Serializable {

	/**
	 *
	 */
	private static final long serialVersionUID = -5072736014487944762L;

	@Logger
	private static Log log;

	@Inject(create=true,value="kiwiSearchEngine")
	private KiWiSearchEngine searchEngine;
	
	private String query; 

	@Begin(join=true)
	@Create
	public void begin(){
		log.debug("begin");
		setQuery("");
		searchEngine.begin();
		searchEngine.runSearch();
		log.debug("begin: search results: #0", searchEngine.getSearchResults().getResultCount());
	}
	
	@End
	public void end(){
		
	}
	
	public void runSearch(){
		searchEngine.runSearch();
		log.debug("runSearch: search results: #0", searchEngine.getSearchResults().getResultCount());
	}
	
	public KiWiSearchEngine getSearchEngine() {
		return searchEngine;
	}

	public void setSearchEngine(KiWiSearchEngine searchEngine) {
		this.searchEngine = searchEngine;
	}

	public String getQuery() {
		return query;
	}

	public void setQuery(String query) {
		this.query = query;
		log.debug("setQuery: query is '#0'", query);
		searchEngine.setSearchQuery("type:kiwi:Image " + query);
	}
}